﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace DartDetectorTest1.Detector
{
	/// <summary>
	///	Delegate to notify the detection of a new dart.
	///	
	/// TODO:
	///		Give the Score parameter its own struct
	/// </summary>
	/// <param name="sender"></param>
	/// <param name="score"></param>
	public delegate void DartDetectionEventHandler(object sender, int score);
	
	/// <summary>
	/// Interface for the DartDetector classes
	/// </summary>
	interface IDartDetector
	{
		/// <summary>
		/// The event that notifies when there is a new dart detected in the board
		/// </summary>
		event DartDetectionEventHandler DartDetected;
		
		/// <summary>
		/// The number of cameras
		/// </summary>
		int Cameras{ get; set;}
		
		/// <summary>
		/// Process the video frame and try to detect a dart in it
		/// </summary>
		/// <param name="image"></param>
		/// <param name="videoSource"></param>
		void ProcessFrame(ref Bitmap image, int videoSource);
	}
}
